/* Copyright (c) 2023 PaddlePaddle Authors. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
    http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. */

#ifdef PADDLE_WITH_XPU
#include <string>
#include <unordered_map>
#include <unordered_set>
#include "paddle/phi/backends/xpu/xpu_op_list.h"

namespace phi {
namespace backends {
namespace xpu {

XPUOpMap& get_kl3_ops() {
  // KL3支持的op，通过op_name, data_type, place来索引
  static XPUOpMap s_xpu3_kernels{
      {"acos",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"add_act_xpu",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"add_layernorm_xpu",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"abs",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"abs_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"accuracy",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"adadelta", XPUKernelSet({phi::DataType::FLOAT32})},
      {"adamw",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"adam", XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"adagrad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"addcmul_xpu",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"addmm",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"addmm_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"arange_tensor",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"all_gather",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::BOOL,
                     phi::DataType::UINT8,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"all_reduce",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"all_to_all",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::BOOL,
                     phi::DataType::UINT8,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"arg_max",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"arg_min",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"argsort_grad",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT32})},
      {"argsort",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32})},
      {"array_pop",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::BOOL})},
      {"array_read",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::BOOL})},
      {"array_to_tensor",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::BOOL})},
      {"array_write",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::BOOL})},
      {"assign",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::BOOL})},
      {"assign_raw",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::BOOL})},
      {"assign_value",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::BOOL})},
      {"atan", XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"atan_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"batch_norm_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"barrier", XPUKernelSet({phi::DataType::INT32})},
      {"batch_norm",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"bn_act_xpu",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"bmm", XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"bmm_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"bce_loss_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"beam_search",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"beam_search_decode",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"bilinear_interp_v2",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"bilinear_interp_v2_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"bitwise_not", XPUKernelSet({phi::DataType::BOOL})},
      {"bitwise_and", XPUKernelSet({phi::DataType::BOOL})},
      {"bitwise_or", XPUKernelSet({phi::DataType::BOOL})},
      {"broadcast",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::BOOL,
                     phi::DataType::UINT8,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"c_alltoall",
       XPUKernelSet({phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::UINT8,
                     phi::DataType::BOOL})},
      {"c_allreduce_max",
       XPUKernelSet({phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::INT32})},
      {"c_allreduce_sum",
       XPUKernelSet({phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::INT32})},
      {"c_broadcast",
       XPUKernelSet({phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"c_concat",
       XPUKernelSet({phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"c_embedding",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"c_embedding_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"c_identity",
       XPUKernelSet({phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"c_softmax_with_cross_entropy",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::BFLOAT16})},
      {"c_softmax_with_cross_entropy_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::BFLOAT16})},
      {"c_reduce_sum", XPUKernelSet({phi::DataType::FLOAT32})},
      {"c_split",
       XPUKernelSet({phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT32})},
      {"c_sync_calc_stream",
       XPUKernelSet({phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT64,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"c_sync_comm_stream",
       XPUKernelSet({phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT64,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"cast",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
#ifdef PADDLE_WITH_XPU_FFT
                     phi::DataType::COMPLEX64,
#endif
                     phi::DataType::FLOAT64,
                     phi::DataType::BOOL,
                     phi::DataType::INT8,
                     phi::DataType::UINT8,
                     phi::DataType::INT16,
                     phi::DataType::INT64,
                     phi::DataType::INT32})},
      {"check_finite_and_unscale",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"clip",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::INT32})},
      {"clip_by_norm", XPUKernelSet({phi::DataType::FLOAT32})},
      {"clip_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::INT32})},
      {"coalesce_tensor",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"concat_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"concat",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT64,
                     phi::DataType::BOOL,
                     phi::DataType::UINT8,
                     phi::DataType::INT8,
                     phi::DataType::INT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"conv2d_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"conv2d",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"conv1d_xpu",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"conv2d_xpu",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"conv3d_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"conv3d",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"conv3d_transpose",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"conv2d_transpose_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"conv2d_transpose",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"conv2d_transpose_xpu",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"create_array",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::BOOL})},
      {"create_array_like",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::BOOL})},
      {"cumsum",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::BFLOAT16})},
      {"cumsum_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"cumprod",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"deformable_conv_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"deformable_conv_v1_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"deformable_conv_v1", XPUKernelSet({phi::DataType::FLOAT32})},
      {"depthwise_conv2d_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"depthwise_conv2d",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"depthwise_conv2d_transpose_grad",
       XPUKernelSet({phi::DataType::FLOAT32})},
      {"depthwise_conv2d_transpose",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"dequantize_linear", XPUKernelSet({phi::DataType::FLOAT32})},
      {"dequantize_linear_deprecated", XPUKernelSet({phi::DataType::FLOAT32})},
      {"diag_v2",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"diagonal",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::BOOL,
                     phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32})},
      {"dropout_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"dropout",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"einsum", XPUKernelSet({phi::DataType::FLOAT32})},
      {"einsum_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"elementwise_add_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
#ifdef PADDLE_WITH_XPU_FFT
                     phi::DataType::COMPLEX64,
#endif
                     phi::DataType::INT64,
                     phi::DataType::INT32})},
      {"elementwise_add",
       XPUKernelSet({phi::DataType::FLOAT64,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
#ifdef PADDLE_WITH_XPU_FFT
                     phi::DataType::COMPLEX64,
#endif
                     phi::DataType::INT64,
                     phi::DataType::INT32})},
      {"elementwise_div_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"elementwise_div",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::INT32})},
      {"elementwise_floordiv",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::INT32})},
      {"elementwise_max_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"elementwise_max",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"elementwise_min_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"elementwise_min",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"elementwise_mul_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
#ifdef PADDLE_WITH_XPU_FFT
                     phi::DataType::COMPLEX64,
#endif
                     phi::DataType::BFLOAT16})},
      {"elementwise_mul",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
#ifdef PADDLE_WITH_XPU_FFT
                     phi::DataType::COMPLEX64,
#endif
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"elementwise_pow",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"elementwise_sub_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"elementwise_sub",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"elementwise_mod",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
#ifdef PADDLE_WITH_XPU_FFT
                     phi::DataType::COMPLEX64,
#endif
                     phi::DataType::INT64,
                     phi::DataType::INT32})},
      {"embedding_with_eltwise_add_xpu",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"empty",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::INT16,
                     phi::DataType::INT8,
                     phi::DataType::UINT8,
                     phi::DataType::BOOL,
                     phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::BFLOAT16})},
      {"empty_like",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::INT16,
                     phi::DataType::INT8,
                     phi::DataType::UINT8,
                     phi::DataType::BOOL,
                     phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::BFLOAT16})},
      {"embedding_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"equal",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::BOOL})},
      {"exp_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"exp",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"round",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"expand_as_v2",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::BOOL,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64})},
      {"expand_v2",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::BOOL,
                     phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT64})},
      {"fast_where_xpu",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16})},
      {"layer_norm_act_xpu",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"fast_layernorm_xpu",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"fc_xpu",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"fill",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BOOL,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT64,
                     phi::DataType::FLOAT32})},
      {"fill_any",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BOOL,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT64,
                     phi::DataType::FLOAT32})},
      {"fill_any_like",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::BOOL,
                     phi::DataType::FLOAT16,
                     phi::DataType::FLOAT64,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32})},
      {"fill_diagonal_tensor",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::BOOL,
                     phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32})},
      {"fill_constant",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::INT16,
                     phi::DataType::INT8,
                     phi::DataType::UINT8,
                     phi::DataType::BOOL,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"fill_constant_batch_size_like",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"flash_attn_grad",
       XPUKernelSet({phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16})},
      {"flash_attn_unpadded_grad",
       XPUKernelSet({phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16})},
      {"flash_attn",
       XPUKernelSet({phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16})},
      {"flashmask_attention",
       XPUKernelSet({phi::DataType::BFLOAT16, phi::DataType::FLOAT16})},
      {"flashmask_attention_grad",
       XPUKernelSet({phi::DataType::BFLOAT16, phi::DataType::FLOAT16})},
      {"flash_attn_unpadded",
       XPUKernelSet({phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16})},
      {"flatten2_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::UINT8,
                     phi::DataType::INT8,
                     phi::DataType::INT16,
                     phi::DataType::FLOAT64,
                     phi::DataType::BOOL})},
      {"flatten2",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::UINT8,
                     phi::DataType::INT8,
                     phi::DataType::INT16,
                     phi::DataType::FLOAT64,
                     phi::DataType::BOOL})},
      {"flatten_contiguous_range_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::UINT8,
                     phi::DataType::INT8,
                     phi::DataType::INT16,
                     phi::DataType::FLOAT64,
                     phi::DataType::BOOL})},
      {"flatten_contiguous_range",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::UINT8,
                     phi::DataType::INT8,
                     phi::DataType::INT16,
                     phi::DataType::FLOAT64,
                     phi::DataType::BOOL})},
      {"flatten_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::UINT8,
                     phi::DataType::INT8,
                     phi::DataType::INT16,
                     phi::DataType::FLOAT64,
                     phi::DataType::BOOL})},
      {"flatten",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::UINT8,
                     phi::DataType::INT8,
                     phi::DataType::INT16,
                     phi::DataType::FLOAT64,
                     phi::DataType::BOOL})},
      {"flip", XPUKernelSet({phi::DataType::FLOAT32})},
      {"full",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::BFLOAT16})},
      {"full_batch_size_like",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"full_like",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"full_batch_size_like",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"fused_multi_transformer_xpu",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"fused_rotary_position_embedding",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"fused_rotary_position_embedding_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"unfold",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"unfold_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"floor", XPUKernelSet({phi::DataType::FLOAT32})},
      {"gather_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT8,
                     phi::DataType::INT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::BOOL})},
      {"gather_nd_grad",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"gather_nd",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"gather",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT8,
                     phi::DataType::INT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::BOOL})},
      {"gaussian_random",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"gelu_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"gelu",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"generate_sequence_xpu",
       XPUKernelSet({
           phi::DataType::FLOAT32,
           phi::DataType::INT32,
           phi::DataType::INT64,
       })},
      {"grad_add",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"greater_equal",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32})},
      {"greater_than",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32})},
      {"grid_sampler", XPUKernelSet({phi::DataType::FLOAT32})},
      {"grid_sampler_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"group_norm_silu_xpu",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"hard_sigmoid_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"hard_sigmoid",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"hard_swish_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"hard_swish", XPUKernelSet({phi::DataType::FLOAT32})},
      {"huber_loss_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"huber_loss", XPUKernelSet({phi::DataType::FLOAT32})},
      {"kldiv_loss", XPUKernelSet({phi::DataType::FLOAT32})},
      {"kldiv_loss_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"increment",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"index_elementwise_get",
       XPUKernelSet({phi::DataType::BOOL,
                     phi::DataType::INT32,
                     phi::DataType::INT8,
                     phi::DataType::UINT8,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT64})},
      {"index_elementwise_put",
       XPUKernelSet({phi::DataType::BOOL,
                     phi::DataType::INT32,
                     phi::DataType::INT8,
                     phi::DataType::UINT8,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT64})},
      {"index_elementwise_put_with_tensor",
       XPUKernelSet({phi::DataType::BOOL,
                     phi::DataType::INT32,
                     phi::DataType::INT8,
                     phi::DataType::UINT8,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT64})},
      {"index_put",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64})},
      {"index_put_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64})},
      {"index_sample_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"index_sample",
       XPUKernelSet({phi::DataType::INT8,
                     phi::DataType::INT16,
                     phi::DataType::INT32,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::BOOL})},
      {"index_select_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"index_select",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64})},
      {"index_add",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"index_add_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"instance_norm",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"instance_norm_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"inverse",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT64})},
      {"label_smooth", XPUKernelSet({phi::DataType::FLOAT32})},
      {"layer_norm_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"layer_norm",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"leaky_relu_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"leaky_relu",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"less_equal",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32})},
      {"less_than",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32})},
      {"load", XPUKernelSet({phi::DataType::FLOAT32})},
      {"load_combine",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::INT8,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"log",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"log_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"log_softmax", XPUKernelSet({phi::DataType::FLOAT32})},
      {"log_softmax_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"logical_and", XPUKernelSet({phi::DataType::BOOL})},
      {"logical_not", XPUKernelSet({phi::DataType::BOOL})},
      {"logical_or", XPUKernelSet({phi::DataType::BOOL})},
      {"logical_xor", XPUKernelSet({phi::DataType::BOOL})},
      {"logsumexp",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"logsumexp_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"lookup_table_v2_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"lookup_table_v2",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"masked_select",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32})},
      {"masked_select_grad",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::BOOL,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32})},
      {"max_pool2d_with_index",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"max_pool2d_with_index_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"matmul_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT16})},
      {"matmul_v2_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT16})},
      {"matmul_v2",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT16})},
      {"matmul",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT16})},
      {"mean_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"mean",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"merged_momentum",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"momentum",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"mul", XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"mul_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"multiply",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"multi_encoder_xpu",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"multiclass_nms3", XPUKernelSet({phi::DataType::FLOAT32})},
      {"multinomial",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"nearest_interp_v2",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::INT64})},
      {"nearest_interp_v2_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"nll_loss", XPUKernelSet({phi::DataType::FLOAT32})},
      {"nll_loss_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"nop",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"norm",
       XPUKernelSet({
           phi::DataType::FLOAT32,
           phi::DataType::FLOAT16,
       })},
      {"not_equal",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32})},
      {"one_hot", XPUKernelSet({phi::DataType::INT32, phi::DataType::INT64})},
      {"one_hot_v2",
       XPUKernelSet({phi::DataType::INT32, phi::DataType::INT64})},
      {"p_norm", XPUKernelSet({phi::DataType::FLOAT32})},
      {"p_norm_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"p_recv",
       XPUKernelSet({
           phi::DataType::FLOAT32,
           phi::DataType::FLOAT16,
           phi::DataType::BFLOAT16,
           phi::DataType::FLOAT64,
           phi::DataType::INT32,
           phi::DataType::INT64,
           phi::DataType::UINT8,
       })},
      {"p_recv_array",
       XPUKernelSet({
           phi::DataType::FLOAT32,
           phi::DataType::FLOAT16,
           phi::DataType::BFLOAT16,
           phi::DataType::FLOAT64,
           phi::DataType::INT32,
           phi::DataType::INT64,
           phi::DataType::UINT8,
       })},
      {"p_send",
       XPUKernelSet({
           phi::DataType::FLOAT32,
           phi::DataType::FLOAT16,
           phi::DataType::BFLOAT16,
           phi::DataType::FLOAT64,
           phi::DataType::INT32,
           phi::DataType::INT64,
           phi::DataType::UINT8,
       })},
      {"p_send_array",
       XPUKernelSet({
           phi::DataType::FLOAT32,
           phi::DataType::FLOAT16,
           phi::DataType::BFLOAT16,
           phi::DataType::FLOAT64,
           phi::DataType::INT32,
           phi::DataType::INT64,
           phi::DataType::UINT8,
       })},
      {"pad3d_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"pad3d",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"pad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT16,
                     phi::DataType::INT64,
#ifdef PADDLE_WITH_XPU_FFT
                     phi::DataType::COMPLEX64,
#endif
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT16})},
      {"pad_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT16,
                     phi::DataType::INT64,
#ifdef PADDLE_WITH_XPU_FFT
                     phi::DataType::COMPLEX64,
#endif
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT16})},
      {"pixel_shuffle", XPUKernelSet({phi::DataType::FLOAT32})},
      {"pixel_shuffle_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"pool2d_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"pool2d",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"pool3d_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"pool3d",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"pow",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"pow_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"pow2_decay_with_linear_warmup", XPUKernelSet({phi::DataType::FLOAT32})},
      {"prior_box", XPUKernelSet({phi::DataType::FLOAT32})},
      {"prelu", XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"prelu_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"prod_raw", XPUKernelSet({phi::DataType::FLOAT32})},
      {"put_along_axis",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT16})},
      {"quantize_linear_deprecated_infer",
       XPUKernelSet({phi::DataType::FLOAT32})},
      {"quantize_linear", XPUKernelSet({phi::DataType::FLOAT32})},
      {"range",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::INT32})},
      {"randperm",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64})},
      {"reciprocal", XPUKernelSet({phi::DataType::FLOAT32})},
      {"reciprocal_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"reduce_all", XPUKernelSet({phi::DataType::BOOL})},
      {"reduce_any",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::BOOL})},
      {"reduce_max_grad",
       XPUKernelSet({
           phi::DataType::FLOAT32,
           phi::DataType::FLOAT16,
           phi::DataType::BFLOAT16,
       })},
      {"reduce_max",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"reduce_mean_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"reduce_mean",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::BOOL})},
      {"reduce_min_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"reduce_min",
       XPUKernelSet({
           phi::DataType::FLOAT32,
           phi::DataType::FLOAT16,
           phi::DataType::BFLOAT16,
           phi::DataType::INT32,
           phi::DataType::INT64,
       })},
      {"reduce_prod",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"reduce_scatter",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::BOOL,
                     phi::DataType::UINT8,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"reduce_sum_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::BOOL})},
      {"reduce_sum",
       XPUKernelSet({phi::DataType::FLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::INT8,
                     phi::DataType::FLOAT32,
                     phi::DataType::BFLOAT16,
                     phi::DataType::BOOL})},
      {"relu6", XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"relu6_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"relu_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"relu",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"reshape2_grad",
       XPUKernelSet({phi::DataType::FLOAT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::BOOL,
                     phi::DataType::FLOAT32,
                     phi::DataType::COMPLEX64})},
      {"reshape2",
       XPUKernelSet({phi::DataType::FLOAT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::BOOL,
                     phi::DataType::FLOAT32,
                     phi::DataType::COMPLEX64})},
      {"reshape",
       XPUKernelSet({phi::DataType::FLOAT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::BFLOAT16,
                     phi::DataType::BOOL,
                     phi::DataType::FLOAT32,
                     phi::DataType::COMPLEX64})},
      {"resnet_unit",
       XPUKernelSet({phi::DataType::FLOAT16, phi::DataType::FLOAT32})},
      {"resnet_unit_grad",
       XPUKernelSet({phi::DataType::FLOAT16, phi::DataType::FLOAT32})},
      {"repeat_interleave",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT16})},
      {"repeat_interleave_with_tensor_index",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::BFLOAT16})},
      {"rms_norm",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"rms_norm_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"rnn_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"roi_align", XPUKernelSet({phi::DataType::FLOAT32})},
      {"roi_align_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"roll", XPUKernelSet({phi::DataType::FLOAT32})},
      {"roll_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"rsqrt",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"rsqrt_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"save",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::INT32,
                     phi::DataType::UINT8,
                     phi::DataType::INT8,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"scale",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::INT16,
                     phi::DataType::UINT8,
                     phi::DataType::INT8})},
      {"scatter",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32})},
      {"scatter_grad",
       XPUKernelSet({phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32})},
      {"scatter_nd_add",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"scatter_nd_add_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"set_value",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BOOL,
                     phi::DataType::BFLOAT16})},
      {"set_value_with_tensor",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::BOOL,
                     phi::DataType::BFLOAT16})},
      {"set_value_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT16})},
      {"sgd", XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"silu_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"silu",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"size",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::INT16,
                     phi::DataType::UINT8,
                     phi::DataType::BOOL,
                     phi::DataType::FLOAT16,
                     phi::DataType::FLOAT64,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32})},
      {"sigmoid_cross_entropy_with_logits_grad",
       XPUKernelSet({phi::DataType::FLOAT32})},
      {"sigmoid_cross_entropy_with_logits",
       XPUKernelSet({phi::DataType::FLOAT32})},
      {"share_data",
       XPUKernelSet({phi::DataType::BOOL,
                     phi::DataType::INT32,
                     phi::DataType::INT8,
                     phi::DataType::UINT8,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"shape",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"shape64",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"sigmoid",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"sigmoid_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"sign",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"slice_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
#ifdef PADDLE_WITH_XPU_FFT
                     phi::DataType::COMPLEX64,
#endif
                     phi::DataType::INT32})},
      {"slice",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
#ifdef PADDLE_WITH_XPU_FFT
                     phi::DataType::COMPLEX64,
#endif
                     phi::DataType::FLOAT64,
                     phi::DataType::UINT8,
                     phi::DataType::INT8,
                     phi::DataType::INT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"softmax",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"softmax_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"fused_softmax_mask_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"softmax_with_cross_entropy_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"softmax_with_cross_entropy",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"sparse_coo_tensor",
       XPUKernelSet({phi::DataType::FLOAT64,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::UINT8,
                     phi::DataType::INT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16})},
      {"split",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"split_with_num",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"sqrt",
       XPUKernelSet({
           phi::DataType::FLOAT32,
           phi::DataType::FLOAT16,
           phi::DataType::BFLOAT16,
       })},
      {"sqrt_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"square_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"square",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"squared_l2_norm",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"squared_l2_norm_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"squeeze2_grad",
       XPUKernelSet({phi::DataType::FLOAT64,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::BOOL,
                     phi::DataType::INT8,
                     phi::DataType::UINT8,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32})},
      {"squeeze2",
       XPUKernelSet({phi::DataType::FLOAT64,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::BOOL,
                     phi::DataType::INT8,
                     phi::DataType::UINT8,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32})},
      {"squeeze",
       XPUKernelSet({phi::DataType::FLOAT64,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::BOOL,
                     phi::DataType::INT8,
                     phi::DataType::UINT8,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32})},
      {"squeeze_grad",
       XPUKernelSet({phi::DataType::FLOAT64,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::BOOL,
                     phi::DataType::INT8,
                     phi::DataType::UINT8,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT32})},
      {"stack",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::UINT8,
                     phi::DataType::INT8,
                     phi::DataType::INT16,
                     phi::DataType::BOOL,
                     phi::DataType::FLOAT64})},
      {"stack_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::UINT8,
                     phi::DataType::INT8,
                     phi::DataType::INT16})},
      {"strided_slice",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT16,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"strided_slice_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT16,
                     phi::DataType::INT32})},
      {"sum",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT16})},
      {"swiglu",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"swiglu_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"swish",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"swish_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"take_along_axis",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"take_along_axis_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"tanh_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"tan", XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"tanh",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"temporal_shift", XPUKernelSet({phi::DataType::FLOAT32})},
      {"temporal_shift_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"tril_triu",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::BOOL})},
      {"tril",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::BOOL})},
      {"triu",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::BOOL})},
      {"tril_triu_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::BOOL})},
      {"tril_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::BOOL})},
      {"triu_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::BOOL})},
      {"tile",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::BOOL,
                     phi::DataType::FLOAT64,
                     phi::DataType::FLOAT32,
                     phi::DataType::BFLOAT16})},
      {"tile_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::BFLOAT16})},
      {"transpose2_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::BOOL})},
      {"transpose2",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::BOOL})},
      {"transpose_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
#ifdef PADDLE_WITH_XPU_FFT
                     phi::DataType::COMPLEX64,
#endif
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::BOOL})},
      {"transpose",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
#ifdef PADDLE_WITH_XPU_FFT
                     phi::DataType::COMPLEX64,
#endif
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::BOOL})},
      {"truncated_gaussian_random", XPUKernelSet({phi::DataType::FLOAT32})},
      {"top_k", XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"top_k_v2",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"top_k_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"top_k_v2_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"top_p_sampling",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"update_loss_scaling",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"unbind",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::BFLOAT16})},
      {"uniform_random",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"unique",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"unsqueeze2_grad",
       XPUKernelSet({phi::DataType::FLOAT64,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::BOOL,
                     phi::DataType::INT8,
                     phi::DataType::UINT8,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"unsqueeze2",
       XPUKernelSet({phi::DataType::FLOAT64,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::BOOL,
                     phi::DataType::INT8,
                     phi::DataType::UINT8,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"unsqueeze_grad",
       XPUKernelSet({phi::DataType::FLOAT64,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::BOOL,
                     phi::DataType::INT8,
                     phi::DataType::UINT8,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"unsqueeze",
       XPUKernelSet({phi::DataType::FLOAT64,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::BOOL,
                     phi::DataType::INT8,
                     phi::DataType::UINT8,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"unstack",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32})},
      {"unstack_grad",
       XPUKernelSet({phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32})},
      {"variable_length_memory_efficient_attention",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"view_shape",
       XPUKernelSet({phi::DataType::BOOL,
                     phi::DataType::INT32,
                     phi::DataType::INT8,
                     phi::DataType::UINT8,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"view_slice",
       XPUKernelSet({phi::DataType::BOOL,
                     phi::DataType::INT32,
                     phi::DataType::INT8,
                     phi::DataType::UINT8,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT64,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"warpctc_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"warpctc", XPUKernelSet({phi::DataType::FLOAT32})},
      {"weight_only_linear",
       XPUKernelSet({phi::DataType::FLOAT16, phi::DataType::BFLOAT16})},
      {"where_index",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::BOOL,
                     phi::DataType::FLOAT32,
                     phi::DataType::INT64})},
      {"weight_quantize",
       XPUKernelSet({phi::DataType::FLOAT16, phi::DataType::BFLOAT16})},
      {"where_grad",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT64,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"where",
       XPUKernelSet({phi::DataType::INT32,
                     phi::DataType::INT64,
                     phi::DataType::FLOAT64,
                     phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"sin",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"sin_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"cos",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"cos_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"linspace",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"randint", XPUKernelSet({phi::DataType::INT32, phi::DataType::INT64})},
      {"group_norm",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"group_norm_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"meshgrid",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"expand_v2_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT16})},
      {"eye",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"isinf_v2",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"isnan_v2",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"isfinite_v2",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"isfinite",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"yolo_box_xpu",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"yolo_box", XPUKernelSet({phi::DataType::FLOAT32})},

      // AddMore
      {"sequence_unpad", XPUKernelSet({phi::DataType::FLOAT32})},
      // Fused op
      {"resnet_basic_block_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"resnet_basic_block", XPUKernelSet({phi::DataType::FLOAT32})},
      {"fused_bias_act",
       XPUKernelSet({phi::DataType::FLOAT16, phi::DataType::BFLOAT16})},
      {"fused_bias_residual_layernorm",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT16})},
      {"fused_gemm_epilogue",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"fused_gemm_epilogue_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"fused_linear_param_grad_add",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"fused_attention",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"fused_attention_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"fused_feedforward",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"fused_feedforward_grad",
       XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::FLOAT16})},
      {"qkv_attention_xpu",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::INT8})},
      {"lod_reset",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::FLOAT64,
                     phi::DataType::INT32,
                     phi::DataType::INT64})},
      {"mp_allreduce_sum",
       XPUKernelSet({phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT16,
                     phi::DataType::FLOAT32,
                     phi::DataType::INT32})},
      {"expand_modality_expert_id",
       XPUKernelSet({phi::DataType::INT32, phi::DataType::INT64})},
      {"build_src_rank_and_local_expert_id",
       XPUKernelSet({phi::DataType::INT32, phi::DataType::INT64})},
      {"moe_gate_dispatch_partial_nosoftmaxtopk",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"moe_gate_dispatch_partial_nosoftmaxtopk_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"blha_get_max_len",
       XPUKernelSet({phi::DataType::INT32, phi::DataType::INT64})},
      {"full_with_tensor",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT64,
                     phi::DataType::BOOL,
                     phi::DataType::INT8,
                     phi::DataType::UINT8,
                     phi::DataType::INT16,
                     phi::DataType::INT64,
                     phi::DataType::INT32})},
      {"moe_combine",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"moe_combine_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"moe_gate_dispatch",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"moe_gate_dispatch_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"fused_rms_norm_ext",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
      {"fused_rms_norm_ext_grad",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16})},
#ifdef PADDLE_WITH_XPU_FFT
      {"conj",
       XPUKernelSet({phi::DataType::FLOAT32,
                     phi::DataType::FLOAT16,
                     phi::DataType::BFLOAT16,
                     phi::DataType::FLOAT64,
                     phi::DataType::BOOL,
                     phi::DataType::INT64,
                     phi::DataType::INT32,
                     phi::DataType::COMPLEX64})},
      {"real", XPUKernelSet({phi::DataType::COMPLEX64})},
      {"real_grad", XPUKernelSet({phi::DataType::COMPLEX64})},
      {"imag", XPUKernelSet({phi::DataType::COMPLEX64})},
      {"imag_grad", XPUKernelSet({phi::DataType::COMPLEX64})},
      {"complex", XPUKernelSet({phi::DataType::FLOAT32})},
      {"complex_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"as_complex", XPUKernelSet({phi::DataType::FLOAT32})},
      {"as_real", XPUKernelSet({phi::DataType::COMPLEX64})},
      {"fft_c2c", XPUKernelSet({phi::DataType::COMPLEX64})},
      {"fft_c2r", XPUKernelSet({phi::DataType::COMPLEX64})},
      {"fft_r2c", XPUKernelSet({phi::DataType::FLOAT32})},
      {"fft_c2c_grad", XPUKernelSet({phi::DataType::COMPLEX64})},
      {"fft_c2r_grad", XPUKernelSet({phi::DataType::FLOAT32})},
      {"fft_r2c_grad", XPUKernelSet({phi::DataType::COMPLEX64})},
      {"eig", XPUKernelSet({phi::DataType::FLOAT32, phi::DataType::COMPLEX64})},
      {"eig_grad", XPUKernelSet({phi::DataType::COMPLEX64})},
#endif
  };

  return s_xpu3_kernels;
}

}  // namespace xpu
}  // namespace backends
}  // namespace phi
#endif
